package io.github.lhdxhl.wechatpay.result;

import io.github.lhdxhl.wechatpay.model.PayerModel;
import io.github.lhdxhl.wechatpay.model.AmountModel;
import io.github.lhdxhl.wechatpay.model.PromotionModel;
import io.github.lhdxhl.wechatpay.model.SceneModel;
import lombok.Data;

import java.util.List;

/**
 * @author lsk
 * @version 1.0.0
 * @ClassName WeiXinJsPayParam.java
 * @Description 支付回调,解析后的结果集
 * @createTime 2022年08月23日 14:33:00
 */
@Data
public class WxPayInfoResult {
    /**
     * 由微信生成的应用ID，全局唯一。请求基础下单接口时请注意APPID的应用属性
     * ，例如公众号场景下，需使用应用属性为公众号的服务号APPID
     */
    private String appid;

    /**
     * 直连商户的商户号，由微信支付生成并下发。
     */
    private String mchid;

    /**
     * 微信支付系统生成的订单号。
     */
    private String transactionId;

    /**
     * 商户系统内部订单号，只能是数字、大小写字母_-*且在同一个商户号下唯一
     */
    private String outTradeNo;

    /**
     * 交易类型，枚举值：
     * JSAPI：公众号支付
     * NATIVE：扫码支付
     * APP：APP支付
     * MICROPAY：付款码支付
     * MWEB：H5支付
     * FACEPAY：刷脸支付
     */
    private String tradeType;

    /**
     * 交易状态，枚举值：
     * SUCCESS：支付成功
     * REFUND：转入退款
     * NOTPAY：未支付
     * CLOSED：已关闭
     * REVOKED：已撤销（付款码支付）
     * USERPAYING：用户支付中（付款码支付）
     * PAYERROR：支付失败(其他原因，如银行返回失败)
     */
    private String tradeState;

    /**
     * 交易状态描述
     */
    private String tradeStateDesc;

    /**
     * 付款银行，
     */
    private String bankType;

    /**
     * 附加数据，
     */
    private String attach;

    /**
     * 支付完成时间，
     */
    private String successTime;

    /**
     * 订单金额信息
     */
    private AmountModel amount;

    /**
     * 支付者信息
     */
    private PayerModel payer;

    /**
     * 支付场景描述
     */
    private SceneModel sceneInfo;

    /**
     * 优惠功能
     */
    private List<PromotionModel> promotionDetail;
}
